package br.com.app.ligasoccer;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import br.com.app.ligasoccer.dao.JogadorDAO;
import br.com.app.ligasoccer.domain.Jogador;
import br.com.app.ligasoccer.util.Constantes;

public class JogadorActivity extends Activity {
	
	private EditText nomeJogador;
	private String idLiga;
	private JogadorDAO jogadorDAO;
	private String idJogador;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.adicionar_jogador);
		
		this.nomeJogador = (EditText) findViewById(R.id.nomeJogador);
		this.jogadorDAO = new JogadorDAO(this);

		Intent intent = getIntent();
		if (intent.hasExtra(Constantes.EXTRA_ID_LIGA))
			this.idLiga = intent.getStringExtra(Constantes.EXTRA_ID_LIGA);
		if (intent.hasExtra(Constantes.EXTRA_ID_JOGADOR)) {
			this.idJogador = intent.getStringExtra(Constantes.EXTRA_ID_JOGADOR);
			this.preparaEdicao();
		}
	}
	
	public void adicionarJogador(View view) {
		Jogador jogador = null;
		boolean resultado = false;
		if (this.idJogador == null && this.validarUsuario()) {
			jogador = new Jogador(this.nomeJogador.getText().toString(), Integer.valueOf(this.idLiga));
			resultado = this.jogadorDAO.salvarJogador(jogador);
		} else {
			jogador = new Jogador(Integer.valueOf(this.idJogador), this.nomeJogador.getText().toString(), Integer.valueOf(this.idLiga));
			resultado = this.jogadorDAO.atualizarJogador(jogador);
		}
		if (resultado) {
			Toast.makeText(this, R.string.registro_salvo, Toast.LENGTH_SHORT).show();
			finish();
		} else {
			Toast.makeText(this, R.string.erro_salvar, Toast.LENGTH_SHORT).show();
		}
	}
	
	private void preparaEdicao() {
		if (this.idJogador != null) {
			Jogador jogador = this.jogadorDAO.carregarPorId(this.idJogador);
			this.nomeJogador.setText(jogador.getNome());
		}
	}
	
	private boolean validarUsuario() {
		Jogador jogador = this.jogadorDAO.carregarPorNomeELiga(this.nomeJogador.getText().toString(), this.idLiga);
		return jogador != null ? false : true;
	}
}
